import axios from 'axios'
import { getValueBykey } from "../src/indexDB/dbKV"

// 创建axios实例
const service = axios.create({
  baseURL: "http://localhost:8889", // api的base_url
  timeout: 30000 // 请求超时时间 
})

// 请求拦截器
service.interceptors.request.use(
  async config  =>  {
    let aToken = await getValueBykey('token');
    // 判断indexDB中是否存在token
    if (aToken) {
      // 如果存在，那么每个http header都加上token
      config.headers['Authorization'] = aToken
    } else {
      // 如果不存在，跳转到/
      // window.location.href = '/login/'
      // console.log("axios请求拦截器，token为空");
    }
    return config
  },
  error => {
    // 请求错误处理
    console.log(error) 
    Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    // 根据响应信息判断token是否有效
    if (response.data.code == 401) {
      console.log("响应拦截器返回");
      // 如果无效，跳转到/
      window.location.href = '/login/'
    }
    return response
  },
  error => {
    // 响应错误处理
    console.log('err' + error)
    return Promise.reject(error)
  }
)

export default service